#!/bin/bash

# Configuracion correspondiente al TelServer
function telServer(){
#Configuracion de interfaces
ifconfig eth0 $TELNET_SERVER_CORNETA netmask $MASK_BARRA28 broadcast $BCAST_CORNETA
ifconfig eth0:0 $TELNET_SERVER_GAITA netmask $MASK_BARRA25 broadcast $BCAST_GAITA

#Configuracion de tabla de ruteo
# Red FLAUTA TRAVERSA
route add -net $FLAUTA_TRAVERSA netmask $MASK_BARRA24 gw $H13_CORNETA dev eth0 metric 3
# Red TRIANGULO
route add -net $TRIANGULO netmask $MASK_BARRA26 gw $H13_CORNETA dev eth0 metric 2
# Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H13_CORNETA dev eth0 metric 1
# Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H15_CORNETA dev eth0 metric 1
# Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H15_CORNETA dev eth0 metric 2
# Red OBOE
route add -net $OBOE netmask $MASK_BARRA27 gw $H15_CORNETA dev eth0 metric 3
# Red TROMBON
route add -net $TROMBON netmask $MASK_BARRA24 gw $H15_CORNETA dev eth0 metric 3

# Configuracion de direccion de DNS
./restoDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi
}

function webServer(){
#Configuracion de interfaces
ifconfig eth0 $WEB_SERVER netmask $MASK_BARRA24 broadcast $BCAST_FLAUTA_TRAVERSA

#Configuracion de tabla de ruteo
#Red TRIANGULO
route add -net $TRIANGULO netmask $MASK_BARRA26 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 1
#Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 2
#Red GAITA
route add -net $GAITA netmask $MASK_BARRA25 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 3
#Red CORNETA
route add -net $CORNETA netmask $MASK_BARRA28 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 3
#Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 4
#Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 5
#Red OBOE
route add -net $OBOE netmask $MASK_BARRA27 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 6
#Red TROMBON
route add -net $TROMBON netmask $MASK_BARRA24 gw $H3_FLAUTA_TRAVERSA dev eth0 metric 6

# Configuracion de direccion de DNS
./restoDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi
}

function ftpServer(){
#Configuracion de interfaces
ifconfig eth0 $FTP_SERVER netmask $MASK_BARRA24 broadcast $BCAST_TROMBON

#Configuracion de tabla de ruteo
# Red OBOE
route add -net $OBOE netmask $MASK_BARRA27 gw $H31_TROMBON dev eth0 metric 1
# Red CHARANGO
route add -net $CHARANGO netmask $MASK_BARRA27 gw $H31_TROMBON dev eth0 metric 1
# Red CORNETA
route add -net $CORNETA netmask $MASK_BARRA28 gw $H31_TROMBON dev eth0 metric 3
# Red GAITA
route add -net $GAITA netmask $MASK_BARRA25 gw $H31_TROMBON dev eth0 metric 4
# Red TRIANGULO
route add -net $TRIANGULO netmask $MASK_BARRA26 gw $H31_TROMBON dev eth0 metric 5
# Red FLAUTA TRAVERSA
route add -net $FLAUTA_TRAVERSA netmask $MASK_BARRA24 gw $H31_TROMBON dev eth0 metric 6
# Red BANDONEON
route add -net $BANDONEON netmask $MASK_BARRA30 gw $H31_TROMBON dev eth0 metric 2
# Red XILOFON
route add -net $XILOFON netmask $MASK_BARRA30 gw $H31_TROMBON dev eth0 metric 4

# Configuracion de direccion de DNS
./concaranDNS.sh
# Verifico si se configuro bien la direccion de DNS
if [ $? -ne 0 ]
then
	echo "La direccion de DNS no pudo ser configurada automaticamente. Por favor, hacerlo manualmente."
fi

}

#------------------------------------------------#
#COMIENZO#

if [ ! -r ./Const.sh ]
then
	echo "ERROR: Falta el archivo de constantes o no tiene permisos de lectura."
	exit 4
fi

. ./Const.sh

if [ -z "$1" ]
then
	echo "ERROR: Ingrese argumento (telserver, webserver, ftpserver)."
	exit 1
fi
if [ "$1" != "telserver" -a "$1" != "webserver" -a "$1" != "ftpserver" ]
then
	echo "ERROR: Argumento ($1) invalido."
	exit 2
fi
if [ ! -x ./CleanUp.sh ]
then
	echo "ERROR: Falta script de Clean Up o no tiene permisos de ejecucion."
	exit 3
fi
if [ ! -x ./concaranDNS.sh ]
then
	echo "ERROR: Falta script de concaranDNS o no tiene permisos de ejecucion."
	exit 5
fi
if [ ! -x ./restoDNS.sh ]
then
	echo "ERROR: Falta script de restoDNS o no tiene permisos de ejecucion."
	exit 5
fi
if [ ! -x ./Services.sh ]
then
	echo "ERROR: Falta script de Services o no tiene permisos de ejecucion."
	exit 6
fi

/etc/rc.d/rc.ip_forward stop

echo "Se limpia la configuracion."

./CleanUp.sh

servicio=$1

echo "Se configura el $servicio."

case $1 in
telserver) telServer;;
webserver) webServer;;
ftpserver) ftpServer;;
esac

# Inicio el servicio correspondiente
echo "Se inicia servicio $servicio."
# Corro el script
./Services.sh $servicio
# Verifico si arrancaron los servicios
if [ $? -ne 0 ]
then
	echo "El servicio $servicio no pudo iniciarse correctamente. Por favor, hacerlo manualmente."
fi

echo "La configuracion ha finalizado con exito!"

